# -*- coding: iso-8859-1 -*-
# file Scene.py
# author Rocco Martino
#
############################################################################
#    Copyright (C) 2015 by Rocco Martino                                   #
#    martinorocco@gmail.com                                                #
#                                                                          #
#    This program is free software; you can redistribute it and/or modify  #
#    it under the terms of the GNU Lesser General Public License as        #
#    published by the Free Software Foundation; either version 2.1 of the  #
#    License, or (at your option) any later version.                       #
#                                                                          #
#    This program is distributed in the hope that it will be useful,       #
#    but WITHOUT ANY WARRANTY; without even the implied warranty of        #
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         #
#    GNU Lesser General Public License for more details.                   #
#                                                                          #
#    You should have received a copy of the GNU Lesser General Public      #
#    License along with this program; if not, write to the                 #
#    Free Software Foundation, Inc.,                                       #
#    59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             #
############################################################################

############################################################################
from . import Group, MatrixTransform, Manager
import sys
############################################################################




############################################################################
# ........................................................................ #
# ........................................................................ #
############################################################################




############################################################################
# ........................................................................ #
class Scene(Group.Group):





############################################################################
############################################################################









############################################################################
    def __init__(self, obj, data):
        super(Scene, self).__init__(obj, data)

        self.ClassName = "osg::Group"

        self.addUserValue("oo_scene", True)
############################################################################




############################################################################
    def writeObject(self, writer):

        self.Data.CurrentScene = self.BlenderObject

        super(Scene, self).writeObject(writer)
############################################################################




############################################################################
    def writeData(self, writer):

        for obj in self.BlenderObject.objects:

            if obj.type == 'MESH' and obj.is_visible(self.Data.CurrentScene) and not obj.parent:

                is_dynamic = False

                try:
                    is_dynamic = obj.material_slots[0].material.game_settings.physics
                except:
                    is_dynamic = False


                if not is_dynamic:
                    self.addChild( MatrixTransform.MatrixTransform(obj, self.Data) )

                else:
                    pass



        self.addChild( Manager.Manager( None, self.Data ) )


        super(Scene, self).writeData(writer)
############################################################################




# ........................................................................ #
############################################################################
